package com.qiku.service;

import com.qiku.domin.Course;
import com.qiku.domin.CourseLesson;
import com.qiku.domin.CourseSection;
import com.qiku.domin.CourseVO;

import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.List;

public interface CourseService {

    /**
     * 多条件 查询课程信息
     * @param courseVO
     * @return
     */
    public List<Course> findCourseByCondition(CourseVO courseVO);


    /**
     * 保存课程信息
     * @param courseVO
     */
    public void saveCourseOrTeacher(CourseVO courseVO) throws InvocationTargetException, IllegalAccessException;



    /**
     * 修改课程信息
     * @param courseVO
     */
    public void updateCourseOrTeacher(CourseVO courseVO) throws InvocationTargetException, IllegalAccessException;


    /**
     *  根据id查询课程信息
     * @param id
     * @return CourseVO  将查询到的course 封装为CourseVo 再返回到controer
     */
    public CourseVO findCourseById(Integer id) throws InvocationTargetException, IllegalAccessException;


    /**
     * 修改课程状态
     * @param
     * @param
     * @param
     */
    public void updateStatusCourse(Integer id , Integer status ) throws InvocationTargetException, IllegalAccessException;


    /**
     * 查询课程下的章节与课时信息
     * @param courseId
     * @return
     */
    public List<CourseSection> findSectionAndLessonByCourseId(int courseId);


    /**
     * 回显章节对应的课程信息
     * @param courseId
     * @return
     */
    public Course findCourseByCourseId(int courseId);


    /**
     * 新增章节信息
     * @param courseSection
     */
    public void saveCourseSection(CourseSection courseSection);

    /**
     * 修改章节信息
     * @param courseSection
     */
    public void updateCourseSection(CourseSection courseSection);


    /**
     * 修改章节状态
     * @param id
     * @param status
     */
    public void updateStatusCourseSection(Integer id , int status );


    /**
     * 新建课时信息
     * @param courseLesson
     */
    public void saveLesson(CourseLesson courseLesson);

}
